{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import torch\n",
    "import torchaudio.transforms as trans\n",
    "import librosa\n",
    "from model import WaveNet\n",
    "from torch.autograd import Variable\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([1, 18944])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "audio, _ = librosa.load('./VCTK/p225/p225_001.wav', sr=16000, mono=True)\n",
    "audio, _ = librosa.effects.trim(audio, top_db=10, frame_length=2048)\n",
    "audio = np.clip(audio, -1, 1)\n",
    "wav_tensor = torch.from_numpy(audio).unsqueeze(1)\n",
    "wav_tensor = trans.MuLawEncoding()(wav_tensor).transpose(0, 1)\n",
    "wav_tensor.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f778b1d72b0>]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(wav_tensor.numpy()[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = WaveNet()\n",
    "model.load_state_dict(torch.load('model.pth'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "ename": "RuntimeError",
     "evalue": "index out of range at /pytorch/aten/src/TH/generic/THTensorEvenMoreMath.cpp:191",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mRuntimeError\u001b[0m                              Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-32-66fb11565b9c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtest_logits\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msample\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      2\u001b[0m \u001b[0mtest_logits\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m    487\u001b[0m             \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_slow_forward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    488\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 489\u001b[0;31m             \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    490\u001b[0m         \u001b[0;32mfor\u001b[0m \u001b[0mhook\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_forward_hooks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    491\u001b[0m             \u001b[0mhook_result\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mhook\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/my_jnotes/190313_wavenet/190313_my_wavenet/model.py\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, inputs)\u001b[0m\n\u001b[1;32m     81\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     82\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 83\u001b[0;31m         \u001b[0moutputs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpreprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     84\u001b[0m         \u001b[0mskip_connections\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     85\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/my_jnotes/190313_wavenet/190313_my_wavenet/model.py\u001b[0m in \u001b[0;36mpreprocess\u001b[0;34m(self, inputs)\u001b[0m\n\u001b[1;32m     95\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     96\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mpreprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 97\u001b[0;31m         \u001b[0mout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpre\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtranspose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     98\u001b[0m         \u001b[0;31m# inputs, shape (1, n) -> (1, n, 32) -> (1, 32, n), res_channels=32\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     99\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m    487\u001b[0m             \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_slow_forward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    488\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 489\u001b[0;31m             \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    490\u001b[0m         \u001b[0;32mfor\u001b[0m \u001b[0mhook\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_forward_hooks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    491\u001b[0m             \u001b[0mhook_result\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mhook\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/torch/nn/modules/sparse.py\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m    116\u001b[0m         return F.embedding(\n\u001b[1;32m    117\u001b[0m             \u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweight\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpadding_idx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmax_norm\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 118\u001b[0;31m             self.norm_type, self.scale_grad_by_freq, self.sparse)\n\u001b[0m\u001b[1;32m    119\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    120\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mextra_repr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/torch/nn/functional.py\u001b[0m in \u001b[0;36membedding\u001b[0;34m(input, weight, padding_idx, max_norm, norm_type, scale_grad_by_freq, sparse)\u001b[0m\n\u001b[1;32m   1452\u001b[0m         \u001b[0;31m# remove once script supports set_grad_enabled\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1453\u001b[0m         \u001b[0m_no_grad_embedding_renorm_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mweight\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmax_norm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnorm_type\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1454\u001b[0;31m     \u001b[0;32mreturn\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0membedding\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mweight\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpadding_idx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscale_grad_by_freq\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msparse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1455\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1456\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mRuntimeError\u001b[0m: index out of range at /pytorch/aten/src/TH/generic/THTensorEvenMoreMath.cpp:191"
     ]
    }
   ],
   "source": [
    "test_logits = model(sample)\n",
    "test_logits.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([256])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_logits.squeeze().shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_softmax = F.softmax(logits.squeeze(), dim=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(torch.Size([256]), tensor(1.0000, grad_fn=<SumBackward0>))"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_softmax.shape, test_softmax.sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor(84)"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_m = torch.distributions.Categorical(test_softmax)\n",
    "test_new = test_m.sample()\n",
    "test_new"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([[84]])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_new = test_new.view(1, -1)\n",
    "test_new"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([1, 5117])"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "torch.cat((sample, test_new), dim=1).shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "recp_field = 5116\n",
    "sample = Variable(wav_tensor[:, :recp_field].clone())\n",
    "# 截取wav_tensor前5116帧"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n",
      "100\n",
      "200\n",
      "300\n",
      "400\n",
      "500\n",
      "600\n",
      "700\n",
      "800\n",
      "900\n",
      "1000\n",
      "1100\n",
      "1200\n",
      "1300\n",
      "1400\n",
      "1500\n",
      "1600\n",
      "1700\n",
      "1800\n",
      "1900\n",
      "2000\n",
      "2100\n",
      "2200\n",
      "2300\n",
      "2400\n",
      "2500\n",
      "2600\n",
      "2700\n",
      "2800\n",
      "2900\n",
      "3000\n",
      "3100\n",
      "3200\n",
      "3300\n",
      "3400\n",
      "3500\n",
      "3600\n",
      "3700\n",
      "3800\n",
      "3900\n",
      "4000\n",
      "4100\n",
      "4200\n",
      "4300\n",
      "4400\n",
      "4500\n",
      "4600\n",
      "4700\n",
      "4800\n",
      "4900\n"
     ]
    }
   ],
   "source": [
    "for i in range(5000):\n",
    "    logits = model(sample[:, -5116:])  # 截取sample后5116帧\n",
    "    m = torch.distributions.Categorical(F.softmax(logits.squeeze(), dim=0))\n",
    "    new = m.sample().view(1, -1)\n",
    "    sample = torch.cat((sample, new), dim=1)\n",
    "    \n",
    "    if i % 100 == 0:\n",
    "        print(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f778b556ef0>]"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(wav_tensor.numpy()[0, 5116:6000])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f778aa796d8>]"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(sample.numpy()[0, 5116:6000])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
